package com.starblink.web.core

import android.webkit.GeolocationPermissions
import android.webkit.WebChromeClient
import android.webkit.WebView

class BaseWebChromeClient : WebChromeClient() {
    private val TAG="GuangWebView"
    var mListener: GuangWebView.OnWebChangeListener?=null
    var preWebTitle:String?=null //记录预加载的web标题
    var ifLoadSuccess:Boolean=false //预加载判断是否隐藏loading
    override fun onReceivedTitle(view: WebView?, title: String?) {
        if(title!="about:blank") {
            preWebTitle = title
            mListener?.titleChange(title)
        }
        super.onReceivedTitle(view, title)
    }

    //获取页面加载的进度
    override fun onProgressChanged(view: WebView?, newProgress: Int) {
        mListener?.progressChange(newProgress)
        ifLoadSuccess = newProgress>=70
        if(ifLoadSuccess) {
            //加载成功隐藏loading
            mListener?.showLoadingAnim(false)
        }
//        SKLogger.d(TAG,"加载的H5进度 --- $newProgress% --- ${view?.url}")
        super.onProgressChanged(view, newProgress)
    }

    // 指定源的网页内容在没有设置权限状态下尝试使用地理位置API。
    override fun onGeolocationPermissionsShowPrompt(
        origin: String?,
        callback: GeolocationPermissions.Callback
    ) {
        val allow = true // 是否允许origin使用定位API
        val retain = false // 内核是否记住这次制授权
        callback.invoke(origin, true, false)
    }

    // 之前调用 onGeolocationPermissionsShowPrompt() 申请的授权被取消时，隐藏相关的UI。
    override fun onGeolocationPermissionsHidePrompt() {}

}